package com.lytoyo.neihanduanzi.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lytoyo.neihanduanzi.model.Result;
import com.lytoyo.neihanduanzi.model.blog.BlogInfo;
import com.lytoyo.neihanduanzi.model.dto.BlogInfoDto;

import java.util.List;
import java.util.Map;

/**
 * Package:com.lytoyo.neihanduanzi.service
 *
 * @ClassName:BlogService
 * @Create:2025/3/3 12:16
 **/
public interface BlogService extends IService<BlogInfo> {
    /**
     * 获取十条视频博客
     *
     * @return
     */
    

    /**
     * 点赞博客
     * @param blogId
     * @param userId
     */
    Result blogClickLiked(Long blogId, Long userId);

    /**
     * 取消点赞博客
     * @param blogId
     * @param userId
     */
    Result blogCacelLiked(Long blogId, Long userId);

    /**
     * 获取用户对于视频的点赞收藏情况
     * @return
     */
    Map getUserForBlogStatus();

    /**
     * 获取用户自己的作品
     * @param userId
     * @return
     */
    Result getMineProduction(Long userId);

    /**
     * 查询用户收藏博客
     * @param userId
     * @param blogIdList
     * @return
     */
    Result getMineCollect(Long userId, List<Long> blogIdList);

    /**
     * 查询自己喜欢
     * @param userId
     * @param blogIdList
     * @return
     */
    Result getMineLiked(Long userId, List<Long> blogIdList);

    Page<BlogInfoDto> getBlogList(Integer current, Integer size);

    /**
     * 保存博客
     *
     * @param userId
     * @param blogInfo
     * @return
     */
    Result saveBlog(Long userId, BlogInfo blogInfo);

    /**
     * 获取十条图文博客
     * @param current
     * @param size
     * @return
     */
    Page<BlogInfoDto> getPictureBlogList(Integer current, Integer size);

    /**
     * 获取单条博客
     * @param blogId
     * @return
     */
    Result getSingleBlog(Long blogId);
}
